package com.foxsteps.gsonformat.component.operation;

import com.foxsteps.gsonformat.model.DialogModel;
import com.intellij.psi.PsiAnnotation;
import com.intellij.psi.PsiElement;
import org.jetbrains.annotations.NotNull;

/**
 * The interface Java doc writer.
 *
 * @author Sergey Timofiychuk
 */
public interface AnnotionDocWriter {

    /**
     * The constant WRITE_JAVADOC_COMMAND_NAME.
     */
    String WRITE_JAVADOC_COMMAND_NAME = "AnnotionDocWriter";
    /**
     * The constant WRITE_JAVADOC_COMMAND_GROUP.
     */
    String WRITE_JAVADOC_COMMAND_GROUP = "com.suiyiwen.plugin.idea.apidoc.component.operation";

    /**
     * Write java doc.
     *
     * @param model
     * @param javaDoc       the Java doc
     * @param beforeElement the element to place javadoc before it
     */
    void write(DialogModel model, @NotNull PsiAnnotation javaDoc, @NotNull PsiElement beforeElement);

}
